Playwright Service API (preview:2025-07-01)

2025/08/14 • 7 updated methods

AccessTokens_List (updated)
Description Lists access tokens for the specified workspace ID. Supports OData query parameters: $select, $filter, $orderby, $top, and $skip. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID.
Reference Link ¶

⚶ Changes

{
  "#id": "AccessTokens_List",
  "Description": {
    "new": "Lists access tokens for the specified workspace ID. Supports OData query parameters: $select, $filter, $orderby, $top, and $skip. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID.",
    "old": "Lists access-tokens for the given workspace id. It can use OData query params like $select, $filter, $orderby, $top and $skip. The default page size is 10. Use nextLink in response to fetch more objects in the list. Authorization required is Bearer JWT Access token provided by EntraID."
  },
  "$parameters": [
    {
      "#name": "workspaceId",
      "Description": {
        "new": "The workspace ID in GUID format.",
        "old": "The workspace id in GUID format."
      }
    }
  ],
  "$responses": {
    "200": {
      "$properties": {
        "value": {
          "Description": {
            "new": "Model of an access token linked to a workspace.",
            "old": "Model of an access-token linked to a workspace."
          },
          "$properties": [
            {
              "#name": "id",
              "Description": {
                "new": "The access token ID in GUID format.",
                "old": "The access-token id in GUID format."
              }
            },
            {
              "#name": "name",
              "Description": {
                "new": "The access token name.",
                "old": "The access-token name."
              }
            },
            {
              "#name": "jwtToken",
              "Description": {
                "new": "The access token value in JWT format.",
                "old": "The access-token value in JWT format."
              }
            },
            {
              "#name": "createdAt",
              "Description": {
                "new": "The access token creation timestamp in UTC.",
                "old": "The access-token createdAt utcDateTime."
              }
            },
            {
              "#name": "expiryAt",
              "Description": {
                "new": "The access token expiration timestamp in UTC.",
                "old": "The access-token expiryAt utcDateTime."
              }
            },
            {
              "#name": "state",
              "Description": {
                "new": "The access token state.",
                "old": "The access-token state - Active | Expired."
              },
              "Enum": {
                "new": [
                  [
                    "Active",
                    "The access token is active and can be used for authentication."
                  ],
                  [
                    "Expired",
                    "The access token has expired and cannot be used for authentication."
                  ]
                ],
                "old": [
                  [
                    "Active",
                    "The access-token is Active."
                  ],
                  [
                    "Expired",
                    "The access-token is Expired."
                  ]
                ]
              }
            }
          ]
        }
      }
    }
  }
}

⚼ Request

GET:  /playwrightworkspaces/{workspaceId}/access-tokens
{
api-version: string ,
workspaceId: string ,
x-ms-client-request-id: string ,
}

⚐ Response (200)

{
$headers:
{
x-ms-client-request-id: string ,
}
,
$schema:
{
value:
[
{
id: string ,
name: string ,
jwtToken: string ,
createdAt: string ,
expiryAt: string ,
state: enum ,
}
,
]
,
nextLink: string ,
}
,
}

⚐ Response (default)

{
$headers:
{
x-ms-error-code: string ,
}
,
$schema:
{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
innererror:
{
code: string ,
innererror: string ,
}
,
}
,
}
,
}
AccessTokens_Get (updated)
Description Gets an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.
Reference Link ¶

⚶ Changes

{
  "#id": "AccessTokens_Get",
  "Description": {
    "new": "Gets an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.",
    "old": "Gets an access-token for the workspace with given access-token id. Authorization required is Bearer JWT Access token provided by EntraID."
  },
  "$parameters": [
    {
      "#name": "workspaceId",
      "Description": {
        "new": "The workspace ID in GUID format.",
        "old": "The workspace id in GUID format."
      }
    },
    {
      "#name": "accessTokenId",
      "Description": {
        "new": "The access token ID in GUID format.",
        "old": "The access-token id in GUID format."
      }
    }
  ],
  "$responses": {
    "200": {
      "Description": {
        "new": "Model of an access token linked to a workspace.",
        "old": "Model of an access-token linked to a workspace."
      },
      "$properties": [
        {
          "#name": "id",
          "Description": {
            "new": "The access token ID in GUID format.",
            "old": "The access-token id in GUID format."
          }
        },
        {
          "#name": "name",
          "Description": {
            "new": "The access token name.",
            "old": "The access-token name."
          }
        },
        {
          "#name": "jwtToken",
          "Description": {
            "new": "The access token value in JWT format.",
            "old": "The access-token value in JWT format."
          }
        },
        {
          "#name": "createdAt",
          "Description": {
            "new": "The access token creation timestamp in UTC.",
            "old": "The access-token createdAt utcDateTime."
          }
        },
        {
          "#name": "expiryAt",
          "Description": {
            "new": "The access token expiration timestamp in UTC.",
            "old": "The access-token expiryAt utcDateTime."
          }
        },
        {
          "#name": "state",
          "Description": {
            "new": "The access token state.",
            "old": "The access-token state - Active | Expired."
          },
          "Enum": {
            "new": [
              [
                "Active",
                "The access token is active and can be used for authentication."
              ],
              [
                "Expired",
                "The access token has expired and cannot be used for authentication."
              ]
            ],
            "old": [
              [
                "Active",
                "The access-token is Active."
              ],
              [
                "Expired",
                "The access-token is Expired."
              ]
            ]
          }
        }
      ]
    }
  }
}

⚼ Request

GET:  /playwrightworkspaces/{workspaceId}/access-tokens/{accessTokenId}
{
api-version: string ,
workspaceId: string ,
accessTokenId: string ,
x-ms-client-request-id: string ,
}

⚐ Response (200)

{
$headers:
{
x-ms-client-request-id: string ,
}
,
$schema:
{
id: string ,
name: string ,
jwtToken: string ,
createdAt: string ,
expiryAt: string ,
state: enum ,
}
,
}

⚐ Response (default)

{
$headers:
{
x-ms-error-code: string ,
}
,
$schema:
{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
innererror:
{
code: string ,
innererror: string ,
}
,
}
,
}
,
}
AccessTokens_CreateOrReplace (updated)
Description Creates an access token for the workspace with the specified access token ID and name. The ID and name must be unique among active access tokens for the user within a Playwright workspace. Requires Bearer JWT access token provided by Entra ID.
Reference Link ¶

⚶ Changes

{
  "#id": "AccessTokens_CreateOrReplace",
  "Description": {
    "new": "Creates an access token for the workspace with the specified access token ID and name. The ID and name must be unique among active access tokens for the user within a Playwright workspace. Requires Bearer JWT access token provided by Entra ID.",
    "old": "Creates an access-token for the workspace with given access-token id. Authorization required is Bearer JWT Access token provided by EntraID."
  },
  "$parameters": [
    {
      "#name": "workspaceId",
      "Description": {
        "new": "The workspace ID in GUID format.",
        "old": "The workspace id in GUID format."
      }
    },
    {
      "#name": "accessTokenId",
      "Description": {
        "new": "The access token ID in GUID format.",
        "old": "The access-token id in GUID format."
      }
    },
    {
      "resource": {
        "Description": {
          "new": "Model of an access token linked to a workspace.",
          "old": "Model of an access-token linked to a workspace."
        },
        "$properties": [
          {
            "#name": "id",
            "Description": {
              "new": "The access token ID in GUID format.",
              "old": "The access-token id in GUID format."
            }
          },
          {
            "#name": "name",
            "Description": {
              "new": "The access token name.",
              "old": "The access-token name."
            }
          },
          {
            "#name": "jwtToken",
            "Description": {
              "new": "The access token value in JWT format.",
              "old": "The access-token value in JWT format."
            }
          },
          {
            "#name": "createdAt",
            "Description": {
              "new": "The access token creation timestamp in UTC.",
              "old": "The access-token createdAt utcDateTime."
            }
          },
          {
            "#name": "expiryAt",
            "Description": {
              "new": "The access token expiration timestamp in UTC.",
              "old": "The access-token expiryAt utcDateTime."
            }
          },
          {
            "#name": "state",
            "Description": {
              "new": "The access token state.",
              "old": "The access-token state - Active | Expired."
            },
            "Enum": {
              "new": [
                [
                  "Active",
                  "The access token is active and can be used for authentication."
                ],
                [
                  "Expired",
                  "The access token has expired and cannot be used for authentication."
                ]
              ],
              "old": [
                [
                  "Active",
                  "The access-token is Active."
                ],
                [
                  "Expired",
                  "The access-token is Expired."
                ]
              ]
            }
          }
        ]
      }
    }
  ],
  "$responses": {
    "200": {
      "Description": {
        "new": "Model of an access token linked to a workspace.",
        "old": "Model of an access-token linked to a workspace."
      },
      "$properties": [
        {
          "#name": "id",
          "Description": {
            "new": "The access token ID in GUID format.",
            "old": "The access-token id in GUID format."
          }
        },
        {
          "#name": "name",
          "Description": {
            "new": "The access token name.",
            "old": "The access-token name."
          }
        },
        {
          "#name": "jwtToken",
          "Description": {
            "new": "The access token value in JWT format.",
            "old": "The access-token value in JWT format."
          }
        },
        {
          "#name": "createdAt",
          "Description": {
            "new": "The access token creation timestamp in UTC.",
            "old": "The access-token createdAt utcDateTime."
          }
        },
        {
          "#name": "expiryAt",
          "Description": {
            "new": "The access token expiration timestamp in UTC.",
            "old": "The access-token expiryAt utcDateTime."
          }
        },
        {
          "#name": "state",
          "Description": {
            "new": "The access token state.",
            "old": "The access-token state - Active | Expired."
          },
          "Enum": {
            "new": [
              [
                "Active",
                "The access token is active and can be used for authentication."
              ],
              [
                "Expired",
                "The access token has expired and cannot be used for authentication."
              ]
            ],
            "old": [
              [
                "Active",
                "The access-token is Active."
              ],
              [
                "Expired",
                "The access-token is Expired."
              ]
            ]
          }
        }
      ]
    },
    "201": {
      "Description": {
        "new": "Model of an access token linked to a workspace.",
        "old": "Model of an access-token linked to a workspace."
      },
      "$properties": [
        {
          "#name": "id",
          "Description": {
            "new": "The access token ID in GUID format.",
            "old": "The access-token id in GUID format."
          }
        },
        {
          "#name": "name",
          "Description": {
            "new": "The access token name.",
            "old": "The access-token name."
          }
        },
        {
          "#name": "jwtToken",
          "Description": {
            "new": "The access token value in JWT format.",
            "old": "The access-token value in JWT format."
          }
        },
        {
          "#name": "createdAt",
          "Description": {
            "new": "The access token creation timestamp in UTC.",
            "old": "The access-token createdAt utcDateTime."
          }
        },
        {
          "#name": "expiryAt",
          "Description": {
            "new": "The access token expiration timestamp in UTC.",
            "old": "The access-token expiryAt utcDateTime."
          }
        },
        {
          "#name": "state",
          "Description": {
            "new": "The access token state.",
            "old": "The access-token state - Active | Expired."
          },
          "Enum": {
            "new": [
              [
                "Active",
                "The access token is active and can be used for authentication."
              ],
              [
                "Expired",
                "The access token has expired and cannot be used for authentication."
              ]
            ],
            "old": [
              [
                "Active",
                "The access-token is Active."
              ],
              [
                "Expired",
                "The access-token is Expired."
              ]
            ]
          }
        }
      ]
    }
  }
}

⚼ Request

PUT:  /playwrightworkspaces/{workspaceId}/access-tokens/{accessTokenId}
{
api-version: string ,
workspaceId: string ,
accessTokenId: string ,
x-ms-client-request-id: string ,
resource:
{
id: string ,
name: string ,
jwtToken: string ,
createdAt: string ,
expiryAt: string ,
state: enum ,
}
,
}

⚐ Response (200)

{
$headers:
{
x-ms-client-request-id: string ,
}
,
$schema:
{
id: string ,
name: string ,
jwtToken: string ,
createdAt: string ,
expiryAt: string ,
state: enum ,
}
,
}

⚐ Response (201)

{
$headers:
{
x-ms-client-request-id: string ,
}
,
$schema:
{
id: string ,
name: string ,
jwtToken: string ,
createdAt: string ,
expiryAt: string ,
state: enum ,
}
,
}

⚐ Response (default)

{
$headers:
{
x-ms-error-code: string ,
}
,
$schema:
{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
innererror:
{
code: string ,
innererror: string ,
}
,
}
,
}
,
}
AccessTokens_Delete (updated)
Description Deletes an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.
Reference Link ¶

⚶ Changes

{
  "#id": "AccessTokens_Delete",
  "Description": {
    "new": "Deletes an access token for the workspace with the specified access token ID. Requires Bearer JWT access token provided by Entra ID.",
    "old": "Deletes an access-token for the workspace with given access-token id. Authorization required is Bearer JWT Access token provided by EntraID."
  },
  "$parameters": [
    {
      "#name": "workspaceId",
      "Description": {
        "new": "The workspace ID in GUID format.",
        "old": "The workspace id in GUID format."
      }
    },
    {
      "#name": "accessTokenId",
      "Description": {
        "new": "The access token ID in GUID format.",
        "old": "The access-token id in GUID format."
      }
    }
  ]
}

⚼ Request

DELETE:  /playwrightworkspaces/{workspaceId}/access-tokens/{accessTokenId}
{
api-version: string ,
workspaceId: string ,
accessTokenId: string ,
x-ms-client-request-id: string ,
}

⚐ Response (204)

{
x-ms-client-request-id: string ,
}

⚐ Response (default)

{
$headers:
{
x-ms-error-code: string ,
}
,
$schema:
{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
innererror:
{
code: string ,
innererror: string ,
}
,
}
,
}
,
}
Workspaces_GetBrowsers (updated)
Description Gets remote browsers for the specified workspace ID and redirects the client to execute Playwright scripts. Requires Bearer JWT access token provided by Entra ID or Playwright Service.
Reference Link ¶

⚶ Changes

{
  "#id": "Workspaces_GetBrowsers",
  "Description": {
    "new": "Gets remote browsers for the specified workspace ID and redirects the client to execute Playwright scripts. Requires Bearer JWT access token provided by Entra ID or Playwright Service.",
    "old": "Gets remote browsers corresponding to given workspace id and redirects the client for executing Playwright scripts. Authorization required is Bearer JWT Access token provided by EntraID or Playwright Service."
  },
  "$parameters": [
    {
      "#name": "workspaceId",
      "Description": {
        "new": "The workspace ID in GUID format.",
        "old": "The workspace id in GUID format."
      }
    },
    {
      "#name": "os",
      "Description": {
        "new": "The operating system for remote script execution.",
        "old": "The os provided by client for remote script runs."
      }
    },
    {
      "#name": "runId",
      "Description": {
        "new": "The run ID in GUID format.",
        "old": "The runId provided by client in GUID format."
      }
    }
  ],
  "$responses": {
    "302": [
      {
        "#name": "location",
        "Description": {
          "new": "The redirect target URL for executing Playwright scripts on remote browsers.",
          "old": "The redirect target URL to run script on remote browsers."
        }
      }
    ]
  }
}

⚼ Request

GET:  /playwrightworkspaces/{workspaceId}/browsers
{
api-version: string ,
workspaceId: string ,
os: string ,
runId: string ,
x-ms-client-request-id: string ,
}

⚐ Response (302)

{
location: string ,
x-ms-client-request-id: string ,
}

⚐ Response (default)

{
$headers:
{
x-ms-error-code: string ,
}
,
$schema:
{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
innererror:
{
code: string ,
innererror: string ,
}
,
}
,
}
,
}
TestRuns_List (updated)
Description Lists test runs for the specified workspace ID. Supports OData query parameters such as $filter and $top. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID or Playwright Service.
Reference Link ¶

⚶ Changes

{
  "#id": "TestRuns_List",
  "Description": {
    "new": "Lists test runs for the specified workspace ID. Supports OData query parameters such as $filter and $top. Default page size is 10. Use nextLink in response to fetch additional results. Requires Bearer JWT access token provided by Entra ID or Playwright Service.",
    "old": "Lists test-runs for the given workspace id. It can use OData query params like $filter, $top etc. The default page size is 10. Use nextLink in response to fetch more objects in the list. Authorization required is Bearer JWT Access token provided by EntraID or Playwright Service."
  },
  "$parameters": [
    {
      "#name": "workspaceId",
      "Description": {
        "new": "The workspace ID in GUID format.",
        "old": "The workspace id in GUID format."
      }
    }
  ],
  "$responses": {
    "200": {
      "$properties": {
        "value": {
          "Description": {
            "new": "Model of a test run used for tracking purposes.",
            "old": "Model of a test-run used for tracking purpose."
          },
          "$properties": [
            {
              "#name": "id",
              "Description": {
                "new": "The test run ID in GUID format.",
                "old": "The test-run id in GUID format."
              }
            },
            {
              "#name": "displayName",
              "Description": {
                "new": "The test run display name.",
                "old": "The test-run display name."
              }
            },
            {
              "#name": "creatorId",
              "Description": {
                "new": "The test run creator's ID.",
                "old": "The test-run creator's id."
              }
            },
            {
              "#name": "creatorName",
              "Description": {
                "new": "The test run creator's name.",
                "old": "The test-run creator's name."
              }
            },
            {
              "#name": "config",
              "Description": {
                "new": "The test run configuration.",
                "old": "The test-run config."
              },
              "$properties": [
                {
                  "#name": "framework",
                  "Description": {
                    "new": "The framework used for the test run.",
                    "old": "The framework used for run."
                  }
                },
                {
                  "#name": "sdkLanguage",
                  "Description": {
                    "new": "The SDK language used for the test run.",
                    "old": "The SDK Language used for run."
                  },
                  "Enum": {
                    "new": [
                      [
                        "JAVASCRIPT",
                        "JavaScript SDK"
                      ],
                      [
                        "TYPESCRIPT",
                        "TypeScript SDK"
                      ],
                      [
                        "CSHARP",
                        "C# SDK"
                      ]
                    ],
                    "old": [
                      [
                        "JAVASCRIPT",
                        "JAVASCRIPT SDK"
                      ],
                      [
                        "TYPESCRIPT",
                        "TYPESCRIPT SDK"
                      ],
                      [
                        "CSHARP",
                        "CSHARP SDK"
                      ]
                    ]
                  }
                },
                {
                  "#name": "maxWorkers",
                  "Description": {
                    "new": "The maximum number of workers required for the test run.",
                    "old": "The maximum number of workers required for the run."
                  }
                }
              ]
            },
            {
              "#name": "ciConfig",
              "Description": {
                "new": "The test run CI configuration.",
                "old": "The test-run CI Config."
              },
              "$properties": [
                {
                  "#name": "branch",
                  "Description": {
                    "new": "The CI branch name.",
                    "old": "The CI branch."
                  }
                },
                {
                  "#name": "author",
                  "Description": {
                    "new": "The CI commit author.",
                    "old": "The CI author."
                  }
                },
                {
                  "#name": "commitId",
                  "Description": {
                    "new": "The CI commit ID.",
                    "old": "The CI commit id."
                  }
                }
              ]
            },
            {
              "#name": "summary",
              "Description": {
                "new": "The test run summary.",
                "old": "The test-run summary."
              },
              "$properties": [
                {
                  "#name": "status",
                  "Description": {
                    "new": "The test run status.",
                    "old": "The run status."
                  },
                  "Enum": {
                    "new": [
                      [
                        "RUNNING",
                        "The test run is currently running."
                      ],
                      [
                        "CLIENT_COMPLETE",
                        "The test run has completed on the client side."
                      ],
                      [
                        "SERVER_COMPLETE",
                        "The test run has completed on the server side."
                      ]
                    ],
                    "old": [
                      [
                        "RUNNING",
                        "The run status is RUNNING"
                      ],
                      [
                        "CLIENT_COMPLETE",
                        "The run status is CLIENT_COMPLETE"
                      ],
                      [
                        "SERVER_COMPLETE",
                        "The run status is SERVER_COMPLETE"
                      ]
                    ]
                  }
                },
                {
                  "#name": "billableTime",
                  "Description": {
                    "new": "The test run billable time in milliseconds.",
                    "old": "The run billable time."
                  }
                },
                {
                  "#name": "numBrowserSessions",
                  "Description": {
                    "new": "The total number of browser sessions allocated to the test run.",
                    "old": "The total number of browser sessions allocated to the run."
                  }
                },
                {
                  "#name": "maxConcurrentBrowserSessions",
                  "Description": {
                    "new": "The highest number of browser sessions that were running concurrently during the test run.",
                    "old": "The highest number of browser sessions that were running at the same time during the run."
                  }
                },
                {
                  "#name": "startTime",
                  "Description": {
                    "new": "The test run start time in UTC.",
                    "old": "The run start time as utcDateTime."
                  }
                },
                {
                  "#name": "endTime",
                  "Description": {
                    "new": "The test run end time in UTC.",
                    "old": "The run end time as utcDateTime."
                  }
                },
                {
                  "#name": "duration",
                  "Description": {
                    "new": "The test run duration in milliseconds.",
                    "old": "The run duration."
                  }
                },
                {
                  "#name": "errorMessages",
                  "Description": {
                    "new": "The list of error messages corresponding to the test run.",
                    "old": "The list of error messages corresponding to the run."
                  }
                }
              ]
            }
          ]
        }
      }
    }
  }
}

⚼ Request

GET:  /playwrightworkspaces/{workspaceId}/test-runs
{
api-version: string ,
workspaceId: string ,
x-ms-client-request-id: string ,
}

⚐ Response (200)

{
$headers:
{
x-ms-client-request-id: string ,
}
,
$schema:
{
value:
[
{
id: string ,
displayName: string ,
creatorId: string ,
creatorName: string ,
config:
{
framework:
{
name: string ,
version: string ,
runnerName: string ,
}
,
sdkLanguage: enum ,
maxWorkers: integer ,
}
,
ciConfig:
{
providerName: string ,
branch: string ,
author: string ,
commitId: string ,
revisionUrl: string ,
}
,
summary:
{
status: enum ,
billableTime: integer ,
numBrowserSessions: integer ,
maxConcurrentBrowserSessions: integer ,
startTime: string ,
endTime: string ,
duration: integer ,
errorMessages:
[
string ,
]
,
}
,
}
,
]
,
nextLink: string ,
}
,
}

⚐ Response (default)

{
$headers:
{
x-ms-error-code: string ,
}
,
$schema:
{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
innererror:
{
code: string ,
innererror: string ,
}
,
}
,
}
,
}
TestRuns_CreateOrUpdate (updated)
Description Creates or updates a test run for the workspace with the specified test run ID. Requires Bearer JWT access token provided by Entra ID or Playwright Service.
Reference Link ¶

⚶ Changes

{
  "#id": "TestRuns_CreateOrUpdate",
  "Description": {
    "new": "Creates or updates a test run for the workspace with the specified test run ID. Requires Bearer JWT access token provided by Entra ID or Playwright Service.",
    "old": "Creates/Updates a test-run for the workspace with given test-run id. Authorization required is Bearer JWT Access token provided by EntraID or Playwright Service."
  },
  "$parameters": [
    {
      "#name": "workspaceId",
      "Description": {
        "new": "The workspace ID in GUID format.",
        "old": "The workspace id in GUID format."
      }
    },
    {
      "#name": "runId",
      "Description": {
        "new": "The test run ID in GUID format.",
        "old": "The test-run id in GUID format."
      }
    },
    {
      "resource": {
        "Description": {
          "new": "Model of a test run used for tracking purposes.",
          "old": "Model of a test-run used for tracking purpose."
        },
        "$properties": [
          {
            "#name": "displayName",
            "Description": {
              "new": "The test run display name.",
              "old": "The test-run display name."
            }
          },
          {
            "#name": "config",
            "Description": {
              "new": "The test run configuration.",
              "old": "The test-run config."
            },
            "$properties": [
              {
                "#name": "framework",
                "Description": {
                  "new": "The framework used for the test run.",
                  "old": "The framework used for run."
                }
              },
              {
                "#name": "sdkLanguage",
                "Description": {
                  "new": "The SDK language used for the test run.",
                  "old": "The SDK Language used for run."
                },
                "Enum": {
                  "new": [
                    [
                      "JAVASCRIPT",
                      "JavaScript SDK"
                    ],
                    [
                      "TYPESCRIPT",
                      "TypeScript SDK"
                    ],
                    [
                      "CSHARP",
                      "C# SDK"
                    ]
                  ],
                  "old": [
                    [
                      "JAVASCRIPT",
                      "JAVASCRIPT SDK"
                    ],
                    [
                      "TYPESCRIPT",
                      "TYPESCRIPT SDK"
                    ],
                    [
                      "CSHARP",
                      "CSHARP SDK"
                    ]
                  ]
                }
              },
              {
                "#name": "maxWorkers",
                "Description": {
                  "new": "The maximum number of workers required for the test run.",
                  "old": "The maximum number of workers required for the run."
                }
              }
            ]
          },
          {
            "#name": "ciConfig",
            "Description": {
              "new": "The test run CI configuration.",
              "old": "The test-run CI Config."
            },
            "$properties": [
              {
                "#name": "branch",
                "Description": {
                  "new": "The CI branch name.",
                  "old": "The CI branch."
                }
              },
              {
                "#name": "author",
                "Description": {
                  "new": "The CI commit author.",
                  "old": "The CI author."
                }
              },
              {
                "#name": "commitId",
                "Description": {
                  "new": "The CI commit ID.",
                  "old": "The CI commit id."
                }
              }
            ]
          }
        ]
      }
    }
  ],
  "$responses": {
    "200": {
      "Description": {
        "new": "Model of a test run used for tracking purposes.",
        "old": "Model of a test-run used for tracking purpose."
      },
      "$properties": [
        {
          "#name": "id",
          "Description": {
            "new": "The test run ID in GUID format.",
            "old": "The test-run id in GUID format."
          }
        },
        {
          "#name": "displayName",
          "Description": {
            "new": "The test run display name.",
            "old": "The test-run display name."
          }
        },
        {
          "#name": "creatorId",
          "Description": {
            "new": "The test run creator's ID.",
            "old": "The test-run creator's id."
          }
        },
        {
          "#name": "creatorName",
          "Description": {
            "new": "The test run creator's name.",
            "old": "The test-run creator's name."
          }
        },
        {
          "#name": "config",
          "Description": {
            "new": "The test run configuration.",
            "old": "The test-run config."
          },
          "$properties": [
            {
              "#name": "framework",
              "Description": {
                "new": "The framework used for the test run.",
                "old": "The framework used for run."
              }
            },
            {
              "#name": "sdkLanguage",
              "Description": {
                "new": "The SDK language used for the test run.",
                "old": "The SDK Language used for run."
              },
              "Enum": {
                "new": [
                  [
                    "JAVASCRIPT",
                    "JavaScript SDK"
                  ],
                  [
                    "TYPESCRIPT",
                    "TypeScript SDK"
                  ],
                  [
                    "CSHARP",
                    "C# SDK"
                  ]
                ],
                "old": [
                  [
                    "JAVASCRIPT",
                    "JAVASCRIPT SDK"
                  ],
                  [
                    "TYPESCRIPT",
                    "TYPESCRIPT SDK"
                  ],
                  [
                    "CSHARP",
                    "CSHARP SDK"
                  ]
                ]
              }
            },
            {
              "#name": "maxWorkers",
              "Description": {
                "new": "The maximum number of workers required for the test run.",
                "old": "The maximum number of workers required for the run."
              }
            }
          ]
        },
        {
          "#name": "ciConfig",
          "Description": {
            "new": "The test run CI configuration.",
            "old": "The test-run CI Config."
          },
          "$properties": [
            {
              "#name": "branch",
              "Description": {
                "new": "The CI branch name.",
                "old": "The CI branch."
              }
            },
            {
              "#name": "author",
              "Description": {
                "new": "The CI commit author.",
                "old": "The CI author."
              }
            },
            {
              "#name": "commitId",
              "Description": {
                "new": "The CI commit ID.",
                "old": "The CI commit id."
              }
            }
          ]
        },
        {
          "#name": "summary",
          "Description": {
            "new": "The test run summary.",
            "old": "The test-run summary."
          },
          "$properties": [
            {
              "#name": "status",
              "Description": {
                "new": "The test run status.",
                "old": "The run status."
              },
              "Enum": {
                "new": [
                  [
                    "RUNNING",
                    "The test run is currently running."
                  ],
                  [
                    "CLIENT_COMPLETE",
                    "The test run has completed on the client side."
                  ],
                  [
                    "SERVER_COMPLETE",
                    "The test run has completed on the server side."
                  ]
                ],
                "old": [
                  [
                    "RUNNING",
                    "The run status is RUNNING"
                  ],
                  [
                    "CLIENT_COMPLETE",
                    "The run status is CLIENT_COMPLETE"
                  ],
                  [
                    "SERVER_COMPLETE",
                    "The run status is SERVER_COMPLETE"
                  ]
                ]
              }
            },
            {
              "#name": "billableTime",
              "Description": {
                "new": "The test run billable time in milliseconds.",
                "old": "The run billable time."
              }
            },
            {
              "#name": "numBrowserSessions",
              "Description": {
                "new": "The total number of browser sessions allocated to the test run.",
                "old": "The total number of browser sessions allocated to the run."
              }
            },
            {
              "#name": "maxConcurrentBrowserSessions",
              "Description": {
                "new": "The highest number of browser sessions that were running concurrently during the test run.",
                "old": "The highest number of browser sessions that were running at the same time during the run."
              }
            },
            {
              "#name": "startTime",
              "Description": {
                "new": "The test run start time in UTC.",
                "old": "The run start time as utcDateTime."
              }
            },
            {
              "#name": "endTime",
              "Description": {
                "new": "The test run end time in UTC.",
                "old": "The run end time as utcDateTime."
              }
            },
            {
              "#name": "duration",
              "Description": {
                "new": "The test run duration in milliseconds.",
                "old": "The run duration."
              }
            },
            {
              "#name": "errorMessages",
              "Description": {
                "new": "The list of error messages corresponding to the test run.",
                "old": "The list of error messages corresponding to the run."
              }
            }
          ]
        }
      ]
    },
    "201": {
      "Description": {
        "new": "Model of a test run used for tracking purposes.",
        "old": "Model of a test-run used for tracking purpose."
      },
      "$properties": [
        {
          "#name": "id",
          "Description": {
            "new": "The test run ID in GUID format.",
            "old": "The test-run id in GUID format."
          }
        },
        {
          "#name": "displayName",
          "Description": {
            "new": "The test run display name.",
            "old": "The test-run display name."
          }
        },
        {
          "#name": "creatorId",
          "Description": {
            "new": "The test run creator's ID.",
            "old": "The test-run creator's id."
          }
        },
        {
          "#name": "creatorName",
          "Description": {
            "new": "The test run creator's name.",
            "old": "The test-run creator's name."
          }
        },
        {
          "#name": "config",
          "Description": {
            "new": "The test run configuration.",
            "old": "The test-run config."
          },
          "$properties": [
            {
              "#name": "framework",
              "Description": {
                "new": "The framework used for the test run.",
                "old": "The framework used for run."
              }
            },
            {
              "#name": "sdkLanguage",
              "Description": {
                "new": "The SDK language used for the test run.",
                "old": "The SDK Language used for run."
              },
              "Enum": {
                "new": [
                  [
                    "JAVASCRIPT",
                    "JavaScript SDK"
                  ],
                  [
                    "TYPESCRIPT",
                    "TypeScript SDK"
                  ],
                  [
                    "CSHARP",
                    "C# SDK"
                  ]
                ],
                "old": [
                  [
                    "JAVASCRIPT",
                    "JAVASCRIPT SDK"
                  ],
                  [
                    "TYPESCRIPT",
                    "TYPESCRIPT SDK"
                  ],
                  [
                    "CSHARP",
                    "CSHARP SDK"
                  ]
                ]
              }
            },
            {
              "#name": "maxWorkers",
              "Description": {
                "new": "The maximum number of workers required for the test run.",
                "old": "The maximum number of workers required for the run."
              }
            }
          ]
        },
        {
          "#name": "ciConfig",
          "Description": {
            "new": "The test run CI configuration.",
            "old": "The test-run CI Config."
          },
          "$properties": [
            {
              "#name": "branch",
              "Description": {
                "new": "The CI branch name.",
                "old": "The CI branch."
              }
            },
            {
              "#name": "author",
              "Description": {
                "new": "The CI commit author.",
                "old": "The CI author."
              }
            },
            {
              "#name": "commitId",
              "Description": {
                "new": "The CI commit ID.",
                "old": "The CI commit id."
              }
            }
          ]
        },
        {
          "#name": "summary",
          "Description": {
            "new": "The test run summary.",
            "old": "The test-run summary."
          },
          "$properties": [
            {
              "#name": "status",
              "Description": {
                "new": "The test run status.",
                "old": "The run status."
              },
              "Enum": {
                "new": [
                  [
                    "RUNNING",
                    "The test run is currently running."
                  ],
                  [
                    "CLIENT_COMPLETE",
                    "The test run has completed on the client side."
                  ],
                  [
                    "SERVER_COMPLETE",
                    "The test run has completed on the server side."
                  ]
                ],
                "old": [
                  [
                    "RUNNING",
                    "The run status is RUNNING"
                  ],
                  [
                    "CLIENT_COMPLETE",
                    "The run status is CLIENT_COMPLETE"
                  ],
                  [
                    "SERVER_COMPLETE",
                    "The run status is SERVER_COMPLETE"
                  ]
                ]
              }
            },
            {
              "#name": "billableTime",
              "Description": {
                "new": "The test run billable time in milliseconds.",
                "old": "The run billable time."
              }
            },
            {
              "#name": "numBrowserSessions",
              "Description": {
                "new": "The total number of browser sessions allocated to the test run.",
                "old": "The total number of browser sessions allocated to the run."
              }
            },
            {
              "#name": "maxConcurrentBrowserSessions",
              "Description": {
                "new": "The highest number of browser sessions that were running concurrently during the test run.",
                "old": "The highest number of browser sessions that were running at the same time during the run."
              }
            },
            {
              "#name": "startTime",
              "Description": {
                "new": "The test run start time in UTC.",
                "old": "The run start time as utcDateTime."
              }
            },
            {
              "#name": "endTime",
              "Description": {
                "new": "The test run end time in UTC.",
                "old": "The run end time as utcDateTime."
              }
            },
            {
              "#name": "duration",
              "Description": {
                "new": "The test run duration in milliseconds.",
                "old": "The run duration."
              }
            },
            {
              "#name": "errorMessages",
              "Description": {
                "new": "The list of error messages corresponding to the test run.",
                "old": "The list of error messages corresponding to the run."
              }
            }
          ]
        }
      ]
    }
  }
}

⚼ Request

PATCH:  /playwrightworkspaces/{workspaceId}/test-runs/{runId}
{
api-version: string ,
workspaceId: string ,
runId: string ,
x-ms-client-request-id: string ,
resource:
{
displayName: string ,
config:
{
framework:
{
name: string ,
version: string ,
runnerName: string ,
}
,
sdkLanguage: enum ,
maxWorkers: integer ,
}
,
ciConfig:
{
providerName: string ,
branch: string ,
author: string ,
commitId: string ,
revisionUrl: string ,
}
,
}
,
}

⚐ Response (200)

{
$headers:
{
x-ms-client-request-id: string ,
}
,
$schema:
{
id: string ,
displayName: string ,
creatorId: string ,
creatorName: string ,
config:
{
framework:
{
name: string ,
version: string ,
runnerName: string ,
}
,
sdkLanguage: enum ,
maxWorkers: integer ,
}
,
ciConfig:
{
providerName: string ,
branch: string ,
author: string ,
commitId: string ,
revisionUrl: string ,
}
,
summary:
{
status: enum ,
billableTime: integer ,
numBrowserSessions: integer ,
maxConcurrentBrowserSessions: integer ,
startTime: string ,
endTime: string ,
duration: integer ,
errorMessages:
[
string ,
]
,
}
,
}
,
}

⚐ Response (201)

{
$headers:
{
x-ms-client-request-id: string ,
}
,
$schema:
{
id: string ,
displayName: string ,
creatorId: string ,
creatorName: string ,
config:
{
framework:
{
name: string ,
version: string ,
runnerName: string ,
}
,
sdkLanguage: enum ,
maxWorkers: integer ,
}
,
ciConfig:
{
providerName: string ,
branch: string ,
author: string ,
commitId: string ,
revisionUrl: string ,
}
,
summary:
{
status: enum ,
billableTime: integer ,
numBrowserSessions: integer ,
maxConcurrentBrowserSessions: integer ,
startTime: string ,
endTime: string ,
duration: integer ,
errorMessages:
[
string ,
]
,
}
,
}
,
}

⚐ Response (default)

{
$headers:
{
x-ms-error-code: string ,
}
,
$schema:
{
error:
{
code: string ,
message: string ,
target: string ,
details:
[
string ,
]
,
innererror:
{
code: string ,
innererror: string ,
}
,
}
,
}
,
}